/*
 * Propiedad de Fernando Lorenta
 * Ejercicios Java PCarrier
 */

package ventanaInsertModBorrarEjerBoletin;

import borrarEjerBoletin.BorrarEjerBoletin;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.lang.reflect.InvocationTargetException;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.swing.JOptionPane;
import ventanaInserModEjer.ModEjer;
import ventanaPrincipal.CargarContenido;
import ventanaPrincipal.VentanaPrincipal;

/**
 *
 * @author fernan
 */
public class InsertModBorrarEjerBoletin implements ActionListener{
    
    private VentanaInsertModBorrarEjerBoletin ventanaInsertModBorrarEjerBoletinWindow;
    private String claseInsert, claseModific;
    private Class classInsertar, classModificar;
    
    public InsertModBorrarEjerBoletin() {
        
    }
            
    public InsertModBorrarEjerBoletin(VentanaInsertModBorrarEjerBoletin ventanaInsertModBorrarEjerBoletinWindow, int ejerOboletin) {
        this.ventanaInsertModBorrarEjerBoletinWindow = ventanaInsertModBorrarEjerBoletinWindow;
        if (ejerOboletin == 1) {
            claseInsert = "";
            claseModific = "";
        }
        else {
            claseInsert = "ventanaInserModEjer.InsertarEjer";
            claseModific = "ventanaInserModEjer.ModEjer";
        }
    }

    private void crearClaseInsert(){
        try {
            classInsertar = Class.forName(claseInsert);  
            classInsertar.getConstructor(VentanaPrincipal.class, VentanaInsertModBorrarEjerBoletin.class).newInstance(ventanaInsertModBorrarEjerBoletinWindow.getVentanaPrincipal(), ventanaInsertModBorrarEjerBoletinWindow);
        } catch (ClassNotFoundException ex) {
            Logger.getLogger(InsertModBorrarEjerBoletin.class.getName()).log(Level.SEVERE, null, ex);
        } catch (NoSuchMethodException ex) {
            Logger.getLogger(InsertModBorrarEjerBoletin.class.getName()).log(Level.SEVERE, null, ex);
        } catch (SecurityException ex) {
            Logger.getLogger(InsertModBorrarEjerBoletin.class.getName()).log(Level.SEVERE, null, ex);
        } catch (InstantiationException ex) {
            Logger.getLogger(InsertModBorrarEjerBoletin.class.getName()).log(Level.SEVERE, null, ex);
        } catch (IllegalAccessException ex) {
            Logger.getLogger(InsertModBorrarEjerBoletin.class.getName()).log(Level.SEVERE, null, ex);
        } catch (IllegalArgumentException ex) {
            Logger.getLogger(InsertModBorrarEjerBoletin.class.getName()).log(Level.SEVERE, null, ex);
        } catch (InvocationTargetException ex) {
            Logger.getLogger(InsertModBorrarEjerBoletin.class.getName()).log(Level.SEVERE, null, ex);
        }
    }
    
    private void crearClaseModificar() {
        try {
            classModificar = Class.forName(claseModific);
            
        } catch (ClassNotFoundException ex) {
            Logger.getLogger(InsertModBorrarEjerBoletin.class.getName()).log(Level.SEVERE, null, ex);
        }
        
    }
    
    @Override
    public void actionPerformed(ActionEvent e) {
        
        if (e.getSource() == ventanaInsertModBorrarEjerBoletinWindow.getSalirBTN()) {
            //Aquí se vuelve a cargar el JComboBox de Boletines y la tabla de Ejercicios
            Thread ccHilo = new Thread(new CargarContenido(ventanaInsertModBorrarEjerBoletinWindow.getVentanaPrincipal().getVentanaPrincipalWindow(), ventanaInsertModBorrarEjerBoletinWindow.getVentanaPrincipal()));
            ccHilo.start();
            ventanaInsertModBorrarEjerBoletinWindow.dispose();
        }
        
        if (e.getSource() == ventanaInsertModBorrarEjerBoletinWindow.getInsertBTN()) {     
                
                crearClaseInsert();
        }
        
        if (e.getSource() == ventanaInsertModBorrarEjerBoletinWindow.getBorrarBTN()) {
            if (ventanaInsertModBorrarEjerBoletinWindow.getTabla().getSelectedRow() != -1) {
                int codigoBorrar = Integer.parseInt(ventanaInsertModBorrarEjerBoletinWindow.getTabla().getValueAt(ventanaInsertModBorrarEjerBoletinWindow.getTabla().getSelectedRow(), 0).toString());
                BorrarEjerBoletin beb = new BorrarEjerBoletin(ventanaInsertModBorrarEjerBoletinWindow.getVentanaPrincipal(), ventanaInsertModBorrarEjerBoletinWindow, codigoBorrar, 2);
            }
            else JOptionPane.showMessageDialog(ventanaInsertModBorrarEjerBoletinWindow, "Tiene que seleccionar un ejercicio.");
        }
        
        if (e.getSource() == ventanaInsertModBorrarEjerBoletinWindow.getModBTN()) {
            if (ventanaInsertModBorrarEjerBoletinWindow.getTabla().getSelectedRow() != -1) {
                int codigoBorrar = Integer.parseInt(ventanaInsertModBorrarEjerBoletinWindow.getTabla().getValueAt(ventanaInsertModBorrarEjerBoletinWindow.getTabla().getSelectedRow(), 0).toString());
                crearClaseModificar();
            }
            else JOptionPane.showMessageDialog(ventanaInsertModBorrarEjerBoletinWindow, "Tiene que seleccionar un ejercicio.");
        }
    }
}
